﻿#include <stdio.h>
#include <stdlib.h>

//int main()
//{
//
//	/*int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	int* p = &arr[0];*/
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	printf("&arr[0] = %p\n", &arr[0]);
//	printf("arr     = %p\n", arr);
//	return 0;
//}


//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	printf("%d\n", sizeof(arr));
//	return 0;
//}



//int main()
//{
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//	printf("arr       = % p\n", arr);
//	printf("arr+1     = % p\n", arr + 1);
//	printf("&arr      = % p\n", &arr);
//	printf("&arr+1    = % p\n", &arr + 1);
//	return 0;
//}


//int main()
//{
//	int a = 10;
//	int* pa = &a;
//	int** ppa = &pa;
//	return 0;
//}

//typedef int ListDataType;
//
//typedef struct SLTlist
//{
//	ListDataType val;
//	struct SLTlist* next;
//}SLT;
//
//void Test(SLT** head)
//{
//	(*head)->next = NULL;
//}
//
//int main()
//{
//	SLT* head = (SLT*)malloc(sizeof(SLT*));
//	SLT* phead = (SLT*)malloc(sizeof(SLT*));
//	head->val = 1;
//	phead->val = 2;
//	head->next = phead;
//	Test(&head);
//}

//
//typedef int ListDataType;
//
//typedef struct SLTlist
//{
//	ListDataType val;
//	struct SLTlist* next;
//}SLT;
//
//SLT* Test(SLT* head)
//{
//	head->next = NULL;
//	return head;
//}
//
//int main()
//{
//	SLT* head = (SLT*)malloc(sizeof(SLT*));
//	SLT* phead = (SLT*)malloc(sizeof(SLT*));
//	head->val = 1;
//	phead->val = 2;
//	head->next = phead;
//	head = Test(&head);
//}


int main()
{
	int arr1[] = { 1,2,3,4,5 };
	int arr2[] = { 2,3,4,5,6 };
	int arr3[] = { 3,4,5,6,7 };
	//数组名是数组⾸元素的地址，类型是int*的，就可以存放在parr数组中

	int* parr[3] = { arr1, arr2, arr3 };
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 5; j++)
		{
			printf("%d ", parr[i][j]);
		}
		printf("\n");
	}
	return 0;
}

//*((*(parr+i))+j)